专利摘要:
本案提出的記憶體控制裝置的實施例之一,包含有記憶體存取電路及低密度奇偶校驗碼解碼電路。記憶體存取電路會自記憶體讀取第一碼字及第二碼字的硬資訊。低密度奇偶校驗碼解碼電路會依據第一碼字的硬資訊進行解碼運算,當低密度奇偶校驗碼解碼電路對第一碼字未能成功解碼時,低密度奇偶校驗碼解碼電路會設置記憶體存取電路讀取第一碼字及第二碼字的軟資訊,並且會設置低密度奇偶校驗碼解碼電路以第一碼字及第二碼字的軟資訊進行解碼運算。
公开号:TW201320091A
申请号:TW100141716
申请日:2011-11-15
公开日:2013-05-16
发明作者:Tsung-Chieh Yang
申请人:Silicon Motion Inc;
IPC主号:H03M13-00
专利说明:
具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
本發明有關於一種記憶體控制裝置,尤指一種具有低密度奇偶校驗碼解碼能力的記憶體控制裝置。
在各種需要進行信號傳輸的應用中,常會採用錯誤更正碼(error correcting code),以便於信號傳輸錯誤時,能讓接收端得以更正錯誤而獲得正確的信號。例如,在儲存裝置中,記憶體控制裝置會將資料經過錯誤更正碼編碼裝置(encoder)編碼後再寫入記憶體,待嗣後讀取該些資料時,若有錯誤的情形發生,即可藉由錯誤更正碼解碼裝置(decoder)修正錯誤而獲得正確的資料。
雖然錯誤更正碼可應用於許多的系統應用中,但是在各種系統應用間仍有些許的差別。例如,在通訊系統中,當通訊通道的狀況太差而使錯誤更正碼解碼裝置無法正確解碼時,接收端會要求發送端重新發送同樣的正確資料,希望能藉由在另一時間傳輸及/或配合較強的錯誤更正碼編碼,而使接收端獲得正確的資料。
然而,在儲存裝置的應用中,不但信號傳輸時可能會受到通道效應及雜訊的干擾,還可能因為資料衰減(data rot)或雜訊等因素而造成儲存裝置中所儲存的資料已經不正確。此外,儲存裝置中所儲存的是經由錯誤更正碼編碼裝置編碼後的資料,因而通訊系統中改用較強的錯誤更正碼將資料重新進行編碼後再傳輸的方式,並無法適用於儲存裝置的應用。因此,針對儲存裝置的特性,而採用合適的錯誤更正碼解碼機制,實有其必要性。
此外,在儲存裝置這類大量生產製造的產品中,品質的控管(quality control)常僅能藉由在一批產品中抽驗數個樣本,而藉由抽驗樣本的效能來判斷這批產品是否合格。尤其當記憶體的製程越先進,記憶體的記憶單元不但體積縮小,並且記憶單元所儲存的資料也增加,造成存取記憶體時產生的錯誤機率不斷升高。因此,記憶體控制裝置的錯誤更正碼解碼能力常是決定儲存裝置是否合格的重要因素。然而,在儲存裝置中採用較強的錯誤更正碼解碼能力需要較高的運算量及較長的運算時間,高運算量會消耗較多的能源,因而會使儲存裝置的應用受限。例如,在日常生活中逐漸扮演重要角色的可攜式設備,即需要採用能源消耗量較低的儲存裝置。另一方面,記憶體控制裝置存取記憶體常會搭配直接記憶體存取(direct memory access)及/或加倍傳輸(double pumping)等技術以縮短記憶體存取時間,使存取記憶體的時間通常已低於錯誤更正碼解碼運算的時間。因此,若解碼運算的時間無法降低時,將會造成儲存裝置的資料輸出速率降低而影響效能。
有鑑於此,如何提升記憶體控制裝置的錯誤更正碼解碼能力以提供正確的資料輸出,並且能夠適當地維持運算量及資料輸出速率,實為業界有待解決的問題。
本說明書提供了一種記憶體控制裝置,包含有:一記憶體存取電路,用以讀取一第一碼字的硬資訊及一第二碼字的硬資訊;以及一低密度奇偶校驗碼解碼電路,用以依據該第一碼字的硬資訊進行解碼運算,並將依據該第一碼字的硬資訊所產生的一檢測值與一解碼指標進行比對;其中,該低密度奇偶校驗碼解碼電路會依據該檢測值與該解碼指標判斷該第一碼字的硬資訊是否通過該解碼指標,若未通過則設置該記憶體存取電路讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
本說明書另提供了一種記憶體控制裝置,包含有:一記憶體存取電路,用以自一個或多個記憶體讀取一第一碼字及一第二碼字,該第一碼字及該第二碼字分別包含有複數個編碼位元的硬資訊;以及一低密度奇偶校驗碼解碼電路,用以依據該第一碼字的該複數個編碼位元的硬資訊進行解碼運算;其中當該低密度奇偶校驗碼解碼電路對該第一碼字未能成功解碼時,該低密度奇偶校驗碼解碼電路會設置該記憶體存取電路讀取該第一碼字及該第二碼字的該複數個編碼位元的軟資訊,並且會設置該低密度奇偶校驗碼解碼電路以該第一碼字及該第二碼字的該複數個編碼位元的軟資訊、或者以該第一碼字及該第二碼字的該複數個編碼位元的硬資訊及軟資訊進行解碼運算。
本說明書另提供了一種記憶體控制方法,包含有:讀取一第一碼字的硬資訊及一第二碼字的硬資訊;依據該第一碼字的硬資訊進行解碼運算;依據該第一碼字的硬資訊所產生的一檢測值,並將該檢測值與一解碼指標進行比對;以及依據該檢測值與該解碼指標判斷該第一碼字的硬資訊是否通過該解碼指標,若未通過則讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
本說明書另提供了一種記憶體控制方法,包含有:自一個或多個記憶體讀取一第一碼字及一第二碼字,該第一碼字及該第二碼字分別包含有複數個編碼位元的硬資訊;依據該第一碼字的該複數個編碼位元的硬資訊進行低密度奇偶校驗碼的解碼運算;以及當該第一碼字未能成功解碼時,讀取該第一碼字及該第二碼字的該複數個編碼位元的軟資訊,並且以該第一碼字及該第二碼字的該複數個編碼位元的軟資訊、或者以該第一碼字及該第二碼字的該複數個編碼位元的硬資訊及軟資訊進行低密度奇偶校驗碼的解碼運算。
上述實施例的優點之一在於記憶體控制裝置能依據資料錯誤的情形而採用適當的硬解碼搭配軟解碼的方式以兼顧解碼能力、能源消耗及資料輸出速率。本發明的其他優點將藉由以下的說明和附圖進行更詳細的說明。
以下將配合相關圖式來說明本發明的實施例。在圖式中,相同的標號表示相同或類似的元件或流程步驟。
圖1顯示本發明一實施例的記憶體控制裝置100簡化後的功能方塊圖。記憶體控制裝置100包含有記憶體存取電路11、低密度奇偶校驗碼解碼電路13、及輸出電路15。圖1中的記憶體為快閃記憶體(flash memory),在其他的實施例中,記憶體也可以採用其他揮發性(volatile)或非揮發性的儲存裝置。
記憶體控制裝置100藉由記憶體存取電路11自記憶體讀取編碼資料(encoded data),圖1中僅繪示一個記憶體存取電路11及一個記憶體以便於說明,在其他的實施例中,也可以採用一個或多個記憶體存取電路,對一個或多個記憶體進行存取。編碼資料可由記憶體控制裝置100或其他裝置中的編碼裝置(圖中未繪示)將資料進行低密度奇偶校驗碼(low density parity check code, LDPC)的編碼運算而產生,並且由記憶體存取電路11或其他記憶體存取電路將編碼資料寫入記憶體。此外,可以依據記憶體控制裝置100的架構、記憶體的種類以及其他的設計考量而採用適當的低密度奇偶校驗碼的編碼方式。例如,採用適當大小的編碼區塊 (block size)、奇偶校驗矩陣(parity check matrix)或產生矩陣(generator matrix)等。
低密度奇偶校驗碼解碼電路13會控制記憶體存取電路11,使控制記憶體存取電路11能適時地讀取記憶體中的編碼資料,並傳送至低密度奇偶校驗碼解碼電路13。低密度奇偶校驗碼解碼電路13接收記憶體存取電路11所讀取的編碼資料後,會對編碼資料進行低密度奇偶校驗碼的解碼運算。
輸出電路15會將低密度奇偶校驗碼解碼電路13解碼運算後的資料輸出至另一裝置(圖中未繪示,例如,輸出至電腦或可攜式設備等)。
圖2為資料儲存於圖1中記憶體的記憶單元(memory cell)時的一實施例簡化後的狀態圖。在本實施例中,每個記憶單元用以儲存1個位元的資料,當記憶體存取電路11讀取記憶單元時,即可依據記憶單元的所儲存的電壓狀態而讀取出硬資訊(hard information)或軟資訊(soft information)。
例如,在一實施例中,若僅需以1位元的硬資訊來代表記憶單元中所儲存的1位元資料時,當記憶單元所儲存的電壓狀態大於Vb時,記憶體存取電路11讀取出1位元的數值1,而記憶單元所儲存的電壓狀態小於Vb時,記憶體存取電路11讀取出1位元的數值0。若以2位元的軟資訊來代表記憶單元中所儲存的1位元資料時,當記憶單元所儲存的電壓狀態大於Vc時,記憶體存取電路11讀取出2位元的數值11,記憶單元所儲存的電壓狀態位於Vb及Vc之間時,記憶體存取電路11讀取出2位元的數值10,記憶單元所儲存的電壓狀態位於Va及Vb之間時,記憶體存取電路11讀取出2位元的數值01,而當記憶單元所儲存的電壓狀態小於Va時,記憶體存取電路11讀取出2位元的數值00。
在此實施例中,記憶體存取電路11可設置記憶體輸出硬資訊或軟資訊,由記憶體內部的電路自行設置讀取資料單元時的閾值電壓(threshold voltage),以輸出資料單元的硬資訊或軟資訊。
在另一實施例中,也可以由記憶體存取電路11改變讀取記憶單元時的閾值電壓,而由記憶單元中讀取出所需的硬資訊及軟資訊。
在另一實施例中,記憶單元可用以儲存多個位元的資料,例如,多階記憶單元(multi-level cell)及三階記憶單元(triple-level cell)可分別用以儲存2位元和3位元的資料。此時,多階記憶單元所儲存的資料的硬資訊為2位元,而軟資訊則以3位元以上的輸出表示。而三階記憶單元所儲存的資料的硬資訊為3位元,而軟資訊則以4位元以上的輸出表示
在另一實施例中,記憶體存取電路11讀取記憶單元所儲存的資料時,所讀取的資料是以電壓值、電流值、電荷值或其他數值的方式表示,而由記憶體存取電路11將該些數值轉換為適當的硬資訊及/或軟資訊。
記憶單元所儲存的資料的軟資訊可以包含或不包含該資料的硬資訊。例如,在一實施例中,記憶單元所儲存的資料的軟資訊為該資料的硬資訊加上一個或多個位元所組成。在另一實施例中,記憶單元所儲存的資料的軟資訊中不包含該資料的硬資訊。在另一實施例中,記憶單元所儲存的資料的硬資訊和軟資訊也可以採用不同的編碼規則,使該資料的軟資訊中並未包含有硬資訊的一個或多個位元的資料。
在另一實施例中,記憶單元所儲存的資料輸出的硬資訊及軟資訊,也可以採用不同的編碼方式。例如,在圖2中,可依據記憶體所儲存的電壓狀態而輸出00、01、10及11的各種2位元組合。
在另一實施例中,記憶單元所儲存的資料的硬資訊及軟資訊具有同樣的位元數,但軟資訊可使用的數值的數目多於硬資訊可使用的數值的數目。例如,在圖2的實施例中,可依據記憶體所儲存的電壓狀態可產生0或1的硬資訊,以及產生00、01、10或11的軟資訊。因此,雖然資料的硬資訊與軟資訊具有相同的位元數,但硬資訊僅有兩種可能的數值,而軟資訊可以有四種可能的數值。
圖1中的低密度奇偶校驗碼解碼電路13可以採用各種演算法及軟硬體架構的解碼裝置實現,而都能夠達成本發明之功效。例如,低密度奇偶校驗碼解碼電路13可以採用信任值傳遞法(belief propagation approach)、最大似然解碼法(maximum likelihood decoding approach)、總和-乘積演算法(sum-product algorithm)、最小總和演算法(minimum-sum algorithm)、平行處理(parallel)的解碼架構、反覆(iterative)的解碼架構、以硬體電路實現的解碼架構、以軟體、韌體及/或硬體搭配處理器(processor)實現的解碼架構等方式實現。
圖3為圖1中的低密度奇偶校驗碼解碼電路13的一實施例簡化後的功能方塊圖,以下將以圖3說明低密度奇偶校驗碼解碼電路13如何進行解碼運算。低密度奇偶校驗碼解碼電路13包含有檢查點處理電路31、變動點處理電路33、排序電路35及控制電路37。
檢查點處理電路31用以計算檢查點(check node)的檢查點信息(check node message),變動點處理電路33用以計算變動點(variable node,或稱為位元點bit node等名稱)的變動點信息(variable node message),排序電路35用以適當地耦接檢查點處理電路31及變動點處理電路33,使檢查點信息及變動點信息可以分別傳送至適當的變動點和檢查點,以使檢查點處理電路31及變動點處理電路33可以繼續計算(當有需要時)檢查點信息及變動點信息而進行解碼。
檢查點信息及變動點信息可以採用對數領域(log domain)、線性領域(linear domain)及/或其他合適的記載方式所表示的機率值(probability)、似然性值 (likelihood)、及/或後驗機率(a posteriori probability)等,以代表檢查點或變動點所儲存的可能數值、所儲存的數值為0或1的機率值、似然性值、及/或後驗機率等。
控制電路37用以設置檢查點處理電路31、變動點處理電路33及排序電路35等元件,依據編碼資料的硬資訊或軟資訊,經由變動點處理電路33計算出變動點信息,並使變動點信息經由排序電路35而傳遞至適當的檢查點處理電路31進行運算而產生檢查點信息,再將檢查點信息經由排序電路35回傳至適當的變動點處理電路33進行反覆地解碼運算,並且控制電路37可藉由檢查點信息及/或變動點信息判斷是否對編碼資料成功地進行解碼。
例如,控制電路37可藉由檢查點信息產生解碼資料預估值,並將解碼資料預估值與奇偶校驗矩陣進行內積(inner product)或乘加運算等而產生校驗值,當校驗值等於0時即表示解碼成功。
此外,低密度奇偶校驗碼解碼電路13可以進行一預設迴圈數(iteration)的解碼運算,並且在解碼運算中,控制電路37會依據檢查點信息及/或變動點信息判斷是否已經解碼成功。例如,在一實施例中,低密度奇偶校驗碼解碼電路13可以設置為進行最多20個迴圈的解碼運算,若執行了20個迴圈的解碼運算仍無法產生校驗值等於0的檢查點信息時,則控制電路37會判斷未解碼成功。然而,當控制電路37判斷未解碼成功並不代表低密度奇偶校驗碼解碼電路13一定無法解碼該編碼資料,而是表示低密度奇偶校驗碼解碼電路13無法在預定的迴圈數內成功解碼該編碼資料。
低密度奇偶校驗碼解碼電路13可以由記憶體存取電路11接收編碼資料的硬資訊而進行解碼運算,也可接收編碼資料的軟資訊而進行解碼運算(在說明書及申請專利範圍中,將分別簡稱為硬解碼及軟解碼)。
大部分的編碼資料以硬解碼方式即可解碼成功,並且低密度奇偶校驗碼解碼電路13進行硬解碼所需的時間及所消耗的能源,通常會低於進行軟解碼所需的時間及所消耗的能源,但是軟解碼運算比硬解碼運算具有較高的錯誤更正能力。
因此,在一實施例中,低密度奇偶校驗碼解碼電路13可以預設先使用編碼資料的硬資訊進行解碼,以降低解碼所需的時間及能源,當硬解碼未成功時,低密度奇偶校驗碼解碼電路13再使用該編碼資料的軟資訊進行解碼。如此一來,低密度奇偶校驗碼解碼電路13即可兼顧解碼速度及所需的能源,並且仍然保有所需的錯誤更正能力。
由於解碼運算所需要的時間以及消耗的能源皆相當多,若低密度奇偶校驗碼解碼電路13能夠及早發現無法解碼成功,而進行相應的動作,則可更加節省解碼所需的時間及能源。因此,當低密度奇偶校驗碼解碼電路13進行解碼運算時,還可以採用一個或多個解碼指標,作為是否會解碼成功的預測。
例如,控制電路37可以將檢查點信息、變動點信息、及/或依據檢查點信息及/或變動點信息運算後所產生的數值作為檢測值,並將檢測值與解碼指標進行比對。依據檢測值的定義的不同,控制電路37可以將檢測值大於或等於解碼指標,作為低密度奇偶校驗碼解碼電路13無法解碼成功的預測,或者控制電路37也可以將檢測值小於或等於解碼指標時,作為低密度奇偶校驗碼解碼電路13無法解碼成功的預測。
控制電路37可以在進行過一個或多個迴圈的解碼運算後,將檢測值與解碼指標進行一次或多次的比對,以作為低密度奇偶校驗碼解碼電路13是否會解碼成功的預測。例如,控制電路37於第10迴圈後、或者於第5迴圈及第10迴圈後、或者於每次迴圈的解碼運算後,將檢測值與解碼指標進行比對,以進行是否會解碼成功的預測。
在一實施例中,當低密度奇偶校驗碼解碼電路13會預設先進行硬解碼,當硬解碼未成功時,再進行軟解碼。此時,低密度奇偶校驗碼解碼電路13可搭配使用解碼指標的方式,而更加節省解碼所需的時間及能源。例如,低密度奇偶校驗碼解碼電路13會預設進行最多20個迴圈的硬解碼運算,並在第5個迴圈的硬解碼運算後,將檢測值與解碼指標進行比對,以作出是否解碼成功的預測。當控制電路37作出無法解碼成功的預測時,表示低密度奇偶校驗碼解碼電路13可能無法於20個迴圈時,以硬解碼方式解碼成功。因此,控制電路37可以於第5個迴圈運算後,即停止硬解碼運算,並且改以編碼資料的軟資訊進行解碼運算。否則,控制電路37會設置檢查點處理電路31、變動點處理電路33及排序電路35繼續進行硬解碼運算至解碼成功、至預設的迴圈運算執行完畢、或者至下次控制電路37作出無法解碼成功的預測時。
在圖4的實施例中,控制電路37可以將檢查點信息與奇偶校驗矩陣進行內積、或將檢查點信息進行運算後的數值做為檢測值,以與解碼指標進行比對。例如,使用檢查點信息運算後所產生的校驗方程式數值(check equation number)做為檢測值。
圖4的線段41和42表示當低密度奇偶校驗碼解碼電路13進行不同的解碼運算時,在每個迴圈的解碼運算後所對應的檢測值。線段41表示低密度奇偶校驗碼解碼電路13解碼成功的一個例子,而線段42表示低密度奇偶校驗碼解碼電路13未解碼成功的一個例子。經過數個迴圈的解碼運算後,解碼成功的線段41的檢測值會下降至數值Nc以下,然而未解碼成功的線段42的檢測值仍然會大於數值Nc。
若經過若干迴圈的解碼運算後,檢測值仍然大於或等於Nc時,代表有很高的機率低密度奇偶校驗碼解碼電路13無法解碼成功,或者無法在預定的迴圈數內解碼成功。因此,可以將解碼指標設置為Nc,由控制電路37將檢測值與解碼指標進行比對,做出無法解碼成功的預測,而能及早停止解碼運算而進行相應的動作。例如,在上述的實施例中,控制電路37在經過5個迴圈的硬解碼運算時,發現校驗值仍然大於或等於解碼指標Nc,控制電路37會作出無法解碼成功的預測,因此停止後續的硬解碼運算,而改以編碼資料的軟資訊進行解碼運算。
在圖5的實施例中,控制電路37將變動點信息進行運算後的數值做為檢測值,以與解碼指標進行比對。例如,使用全部或部分的變動點信息的總合、最大的幾個變動點信息的總合、最小的幾個變動點信息的總合、及/或全部或部分變動點信息經運算後所產生的次序組數值(order set value)的總合等做為檢測值。
線段51和52表示當低密度奇偶校驗碼解碼電路13進行不同的解碼運算時,在每個迴圈的解碼運算後所對應的檢測值。線段51表示低密度奇偶校驗碼解碼電路13解碼成功的一個例子,而線段52表示低密度奇偶校驗碼解碼電路13未解碼成功的一個例子。經過數個迴圈的解碼運算後,解碼成功的線段51的檢測值會上升至數值Nv以上,然而未解碼成功的線段52的檢測值仍然會小於數值Nv。
若經過若干迴圈的解碼運算後,檢測值仍然小於或等於Nv時,代表有很高的機率低密度奇偶校驗碼解碼電路13無法解碼成功,或者無法在預定的迴圈數內解碼成功。因此,可以將解碼指標設置為Nv,由控制電路37將檢測值與解碼指標進行比對,做出無法解碼成功的預測,而能及早停止解碼運算而進行相應的動作。例如,在上述的實施例中,控制電路37在經過5個迴圈的硬解碼運算時,發現校驗值仍然小於或等於解碼指標Nv,控制電路37會作出無法解碼成功的預測,因此停止後續的硬解碼運算,而改以編碼資料的軟資訊進行解碼運算。
在上述的實施例中,也可以將解碼指標設置為一段時間之前的檢測值,並且當檢測值與解碼指標之間的差距小於或等於預設值時、或者當差距大於或等於預設值時,控制電路37會做出無法解碼成功的預測。
在上述的實施例中,控制電路37也可以同時採用多個檢測值與多個解碼指標進行比對,以作出低密度奇偶校驗碼解碼電路13是否解碼成功的預測。
圖6的記憶體控制裝置100的運作時的一實施例簡化後的流程600,以下將以圖6搭配圖1和圖3進一步說明記憶體控制裝置100的運作方式。
在流程61中,低密度奇偶校驗碼解碼電路13會設置記憶體存取電路11會自記憶體讀取多個碼字(code word)的硬資訊,亦即讀取碼字中複數個經低密度奇偶校驗碼編碼的編碼位元(encoded bit)的硬資訊,每個編碼位元的硬資訊可以包含有一個或多個位元的資訊。
在流程62中,低密度奇偶校驗碼解碼電路13會以碼字的硬資訊進行解碼運算,並進入流程63。
在流程63中,低密度奇偶校驗碼解碼電路13會判斷是否解碼成功,若解碼成功則進行流程64,若未能成功解碼則進行流程65。
在流程64,低密度奇偶校驗碼解碼電路13會判斷是否仍有碼字需要進行解碼,若有則回到流程62,由低密度奇偶校驗碼解碼電路13以下一個碼字的硬資訊進行解碼運算。若無,則結束解碼運算。
在流程65中,低密度奇偶校驗碼解碼電路13會設置記憶體存取電路11自記憶體讀取該未硬解碼成功的碼字的軟資訊,並進入流程66。
在流程66中,低密度奇偶校驗碼解碼電路13以碼字的軟資訊進行解碼運算、或者以碼字的硬資訊和軟資訊進行解碼運算(依據硬資訊和軟資訊的定義方式而定)。
在流程67中,低密度奇偶校驗碼解碼電路13會判斷是否仍有碼字需要進行解碼,若有則回到流程66,由低密度奇偶校驗碼解碼電路13以下一個碼字的軟資訊進行解碼運算。若無,則結束解碼運算。
在另一實施例的流程67中,低密度奇偶校驗碼解碼電路13若判斷仍有碼字需要進行解碼,則回到流程63,由低密度奇偶校驗碼解碼電路13以下一個碼字的硬資訊進行解碼運算。若無,則結束解碼運算。
在另一實施例中,若低密度奇偶校驗碼解碼電路13於流程66未能解碼成功,則低密度奇偶校驗碼解碼電路13會產生無法對碼字成功解碼的信息。
在上述的實施例中,記憶體存取電路11和低密度奇偶校驗碼解碼電路13也可分別獨立運作,而增加處理速度。例如,當低密度奇偶校驗碼解碼電路13進行一碼字的解碼運算時,記憶體存取電路11可進行另一個碼字的存取動作。
圖7至圖9為記憶體控制裝置100依據流程600運作時的三個實施例簡化後的時序圖,以下將搭配圖1和圖3進一步說明記憶體控制裝置100的運作方式。
在圖7的時段P1時,記憶體控制裝置100會進行流程61的運作,低密度奇偶校驗碼解碼電路13設置記憶體存取電路11自記憶體讀取4個以低密度奇偶校驗碼編碼的碼字W1至W4的硬資訊,每個碼字包含有複數個編碼位元,每個編碼位元的可包含有1個或多個位元的硬資訊。
為了縮短記憶體控制裝置100處理資料所佔用的時間,當記憶體存取電路11接收完的第一個碼字W1後,記憶體控制裝置100即可開始進行流程62和63的運作。
於時段P2時,低密度奇偶校驗碼解碼電路13會對碼字W1進行解碼並且判斷解碼是否成功,並且於時段P3至P5時分別對碼字W2至W4進行解碼並且判斷是否解碼成功。
此外,低密度奇偶校驗碼解碼電路13可設置輸出電路15輸出解碼成功的碼字W1至W4。
在圖8的時段Q1時,記憶體控制裝置100會進行流程61的運作。低密度奇偶校驗碼解碼電路13設置記憶體存取電路11自記憶體讀取4個以低密度奇偶校驗碼編碼的碼字W1至W4的硬資訊,每個碼字包含有複數個編碼位元。
為了縮短記憶體控制裝置100處理資料所佔用的時間,當記憶體存取電路11接收完的第一個碼字W1後,記憶體控制裝置100即可開始進行流程62和63的運作。
於時段Q2時,低密度奇偶校驗碼解碼電路13會對碼字W1進行解碼並且判斷是否解碼成功,並且於時段Q4至Q6時陸續地對碼字W2至W4進行解碼並且判斷是否解碼成功。
然而,在此實施例的時段Q2中,低密度奇偶校驗碼解碼電路13無法以碼字W1的硬資訊進行成功的解碼,而僅於時段Q4至Q6成功解碼碼字W2至W4。
因此,於時段Q3時,記憶體控制裝置100進行流程65的運作,由低密度奇偶校驗碼解碼電路13設置記憶體存取電路11自記憶體讀取碼字W1的軟資訊。
於時段Q7時,低密度奇偶校驗碼解碼電路13會進行流程66,以碼字W1的軟資訊進行解碼。
在圖8的實施例中,當低密度奇偶校驗碼解碼電路13無法成功解碼一碼字時,低密度奇偶校驗碼解碼電路13仍會繼續對進行尚未完成解碼的其他碼字,以硬資訊進行解碼運算,並且設置記憶體存取電路11讀取未成功解碼的碼字的軟資訊,使低密度奇偶校驗碼解碼電路13能以碼字的軟資訊進行解碼運算。
在圖9的時段T1時,記憶體控制裝置100會進行流程61的運作。低密度奇偶校驗碼13設置記憶體存取電路11自記憶體讀取4個以低密度奇偶校驗碼編碼的碼字W1至W4的硬資訊,每個碼字包含有複數個編碼位元。
為了縮短記憶體控制裝置100處理資料所佔用的時間,當記憶體存取電路11接收完的第一個碼字W1後,記憶體控制裝置100即可開始進行流程62和63的運作。
於時段T2,低密度奇偶校驗碼解碼電路13會對碼字W1進行解碼並且判斷是否解碼成功。
在此實施例時段T2中,低密度奇偶校驗碼解碼電路13無法以碼字W1的硬資訊進行成功的解碼。
因此,於時段T3時,記憶體控制裝置100進行流程65的運作,由低密度奇偶校驗碼13設置記憶體存取電路11自記憶體讀取碼字W1至W4的軟資訊。
於時段T4至T7時,低密度奇偶校驗碼解碼電路13會進行流程66和67,以碼字W1至W4的軟資訊進行解碼運算。
在圖9的實施例中,當低密度奇偶校驗碼13判斷先進行硬解碼運算的碼字無法正確解碼時,低密度奇偶校驗碼解碼電路13會停止對後續的碼字進行硬解碼運算,並且設置記憶體存取電路11讀取尚未成功解碼的碼字的軟資訊,使低密度奇偶校驗碼解碼電路13能以碼字的軟資訊進行解碼運算。
在上述的實施例的流程63或者軟解碼運算中,低密度奇偶校驗碼13的控制電路37可以採用解碼指標,以盡早判斷未能成功解碼的情形。
例如,在圖9的實施例中,當低密度奇偶校驗碼解碼電路13進行碼字W1的硬解碼運算時,控制電路37可以採用上述的一個或多個檢測值與解碼指標進行比對,做出無法解碼成功的預測,而能以比時段T2更短的時間即可進入流程65,讀取碼字的軟資訊而進行軟解碼運算。因此,能更加快解碼的速度與降低所耗費的能源。
在上述的實施例中,記憶體可以採用NAND快閃記憶體,並且記憶體存取電路11可以採用頁(Page)為基本讀取單位存取NAND快閃記憶體的資料。例如,目前常見的規格中,1頁包含有八個扇區(sector),此外,1頁也可以包含有16個扇區或24個扇區等規格。而1個扇區可包含有一個或多個經低密度奇偶校驗碼編碼的碼字。
當記憶體存取電路11讀取NAND快閃記憶體中的資料時,NAND快閃記憶體1頁中各個扇區的資料皆儲存於物理位置鄰近的地方,而容易受到類似的雜訊的影響或是有類似資料衰減。因此,在上述實施例中,當低密度奇偶校驗碼13對1頁中的某一碼字進行硬解碼時,若該碼字未能硬解碼成功,則有很高的機率後續的碼字也無法硬解碼成功。此時,低密度奇偶校驗碼13停止對後續的碼字進行硬解碼運算,改進行軟解碼運算,則可加快整體的解碼速度與降低所耗費的能源。
在上述的實施例中,碼字的數量只是用以說明。實作上,可以據系統應用的需求,而適當地設置進行記憶體存取和進行解碼運算的碼字數量。
在上述的實施例中,低密度奇偶校驗碼解碼電路13也可設置低密度奇偶校驗碼解碼電路13,於接收完所有的碼字W1至W4後,才開始對碼字W1至W4進行解碼。
在上述的實施例中,低密度奇偶校驗碼解碼電路13也可以設置輸出電路15於同一時段,連續地將解碼後的碼字W1至W4輸出至另一裝置。或者,低密度奇偶校驗碼解碼電路13也可以設置輸出電路15於同一時段,同時地將解碼後的碼字W1至W4輸出至另一裝置。或者,低密度奇偶校驗碼解碼電路13也可以設置輸出電路15於多個時段,分別輸出一個或多個碼字W1至W4。
在上述的實施例中,記憶體存取電路11與輸出電路15分別使用不同的通道,由記憶體讀取編碼資料及輸出經解碼的資料。在另一實施例中,記憶體存取電路11與輸出電路15使用相同的通道,而由記憶體讀取編碼資料及輸出經解碼的資料。
在上述的實施例中,記憶體存取電路11也可以於一個或多個時段,由一個或多個記憶體讀取複數個碼字,而每個碼字的編碼位元也可以依據設計考量而設置為適當的數目。
在上述的實施例中,記憶體存取電路11由記憶單元所讀取的硬資訊也可以多於一個位元、或者硬資訊及軟資訊也可以具有同樣的位元數。
在上述的實施例中,可依據設計考量而將碼字設置為具有順序關係或者沒有順序關係,並且可將碼字依順序或不依順序進行解碼。
在流程65中,記憶體存取電路11可於一時段內讀取碼字中編碼位元的軟資訊的所有位元,或者,記憶體存取電路11也可於多個時段內,分次讀取碼字中編碼位元的軟資訊的各個位元。例如,記憶體存取電路11以流程61所讀取的硬資訊做為碼字W1中編碼位元的軟資訊的第一位元,並於流程65中的一時段讀取碼字W1中編碼位元的軟資訊的第二位元,於另一時段讀取碼字W1中編碼位元的軟資訊的第三位元。
說明書及圖式中的元件的數量、位置和連接關係等僅為示意性的敘述與繪製,以簡化說明。說明書中各個元件能以一個或多個的元件實施,或者說明書中多個元件的功能也可由同一元件實施,而皆屬本發明的涵蓋範圍。例如,記憶體存取電路11和輸出電路可以設置為同一元件等。而上述的實施例中的記憶體控制裝置100、記憶體存取電路11、低密度奇偶校驗碼解碼電路13、輸出電路15、及/或流程600的功能,皆可分別地或搭配地採用軟體、韌體、及/或硬體的方式實施。例如,低密度奇偶校驗碼解碼電路13可以採用專門的硬體電路,也可以採用軟體搭配處理器進行的解碼運算。
在上述的實施例中,藉由將記憶體控制裝置100設置為先使用低密度奇偶校驗碼解碼電路13以碼字的硬資訊進行解碼,而具有較低的運算量,並且大部分的資料錯誤皆能使用硬解碼而修正。當低密度奇偶校驗碼解碼電路13無法藉由硬解碼的方式成功地解碼時,始採用低密度奇偶校驗碼解碼電路13以碼字的軟資訊進行解碼,因此對於少數資料錯誤的情形非常嚴重時,也能藉由軟解碼的方式修正錯誤,而維持記憶體控制裝置100的解碼效能。因此,記憶體控制裝置100不但能具有較低的運算量,也能維持解碼效能。
此外,某些記憶體中所儲存的資料容易受到相同的資料衰減,因此,記憶體控制裝置100在低密度奇偶校驗碼解碼電路13進行硬解碼時,可以採用解碼指標與檢測值進行比較,以提早判斷低密度奇偶校驗碼解碼電路是否會發生無法解碼成功的情形,若有碼字無法硬解碼成功時,表示後續相同區塊的碼字也很可能無法硬解碼成功。因此,記憶體控制裝置100會停止後續的硬解碼運算,以節省解碼運算所消耗的能源,並且及早設置記憶體存取電路11讀取軟資訊,使低密度奇偶校驗碼解碼電路13能及早進行軟解碼。因此,在此些實施例中,記憶體控制裝置100也能夠降低解碼運算所占用的時間和能源,而能維持記憶體控制裝置100輸出資料的速率。
說明書及申請專利範圍中的某些詞彙被用來指稱特定的元件,所屬技術領域的技術人員應可理解,同樣的元件可能會用不同的名詞來稱呼。本說明書及申請專利範圍並不以名稱的差異作為區分元件的方式,而是以元件在功能上的差異來為區分的基準。在說明書及申請專利範圍中所提及的「包含」為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞包含任何直接及間接的連接手段。因此,當文中描述第一裝置耦接於第二裝置,則代表第一裝置可通過電性連接、有線傳輸、無線傳輸、或光學傳輸等信號連接方式而直接連接於第二裝置,或通過其他裝置或連接手段間接的電性或信號連接至該第二裝置。
以上所述僅為本發明的較佳實施例,各個實施例間皆能適當的結合而不互斥,凡依本發明申請專利範圍所做的均等變化、修飾與組合,皆屬本發明的涵蓋範圍。
100...記憶體控制裝置
11...記憶體存取電路
13...低密度奇偶校驗碼解碼電路
15...輸出電路
31...檢查點處理電路
33...變動點處理電路
35...排序電路
37...控制電路
圖1為本發明的記憶體控制裝置的一實施例簡化後的功能方塊圖。
圖2為圖1中記憶體的記憶單元儲存資料時的一實施例簡化後的狀態圖。
圖3為圖1中低密度奇偶校驗碼解碼電路的一實施例簡化後的功能方塊圖。
圖4為低密度奇偶校驗碼解碼電路進行解碼運算時所產生的檢測值的一實施例的示意圖。
圖5為低密度奇偶校驗碼解碼電路進行解碼運算時所產生的檢測值的另一實施例的示意圖。
圖6為圖1中的記憶體控制裝置的運作流程的一實施例簡化後的流程圖。
圖7至圖9為圖1中的記憶體控制裝置的運作時的三個實施例簡化後的時序圖。
100...記憶體控制裝置
11...記憶體存取電路
13...低密度奇偶校驗碼解碼電路
15...輸出電路
权利要求:
Claims (20)
[1] 一種記憶體控制裝置,包含有:一記憶體存取電路,用以讀取一第一碼字的硬資訊及一第二碼字的硬資訊;以及一低密度奇偶校驗碼解碼電路,用以依據該第一碼字的硬資訊進行解碼運算,並將依據該第一碼字的硬資訊所產生的一檢測值與一解碼指標進行比對;其中,該低密度奇偶校驗碼解碼電路會依據該檢測值與該解碼指標判斷該第一碼字的硬資訊是否通過該解碼指標,若未通過則設置該記憶體存取電路讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
[2] 如請求項1所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會設置該記憶體存取電路讀取該第二碼字的軟資料,並且以該第二碼字的軟資料進行解碼運算。
[3] 如請求項1或2所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該第一碼字的硬資訊所產生的複數個檢查點信息而產生該檢測值。
[4] 如請求項3所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該複數個檢查點信息與一奇偶校驗矩陣進行運算而產生該檢測值。
[5] 如請求項3所述的記憶體控制裝置,其中當該檢測值大於或等於該解碼指標時,該低密度奇偶校驗碼解碼電路會設置該記憶體存取電路讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
[6] 如請求項3所述的記憶體控制裝置,其中該複數個檢查點信息包含有機率值、似然性值、及/或後驗機率的至少其中之一。
[7] 如請求項1或2所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該第一碼字的硬資訊所產生的複數個變動點信息而產生該檢測值。
[8] 如請求項7所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該複數個變動點信息的至少部分的總合、該複數個變動點信息中最大的一第一個數的總合、該複數個變動點信息中最小的一第二個數的總合、及/或該複數個變動點信息運算後所產生的一次序組數值的總合做為檢測值。
[9] 如請求項7所述的記憶體控制裝置,其中該複數個變動點信息包含有機率值、似然性值、及/或後驗機率的至少其中之一。
[10] 如請求項7所述的記憶體控制裝置,其中當該檢測值大於或等於該解碼指標時,該低密度奇偶校驗碼解碼電路會設置該記憶體存取電路讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
[11] 一種記憶體控制裝置,包含有:一記憶體存取電路,用以自一個或多個記憶體讀取一第一碼字及一第二碼字,該第一碼字及該第二碼字分別包含有複數個編碼位元的硬資訊;以及一低密度奇偶校驗碼解碼電路,用以依據該第一碼字的該複數個編碼位元的硬資訊進行解碼運算;其中當該低密度奇偶校驗碼解碼電路對該第一碼字未能成功解碼時,該低密度奇偶校驗碼解碼電路會設置該記憶體存取電路讀取該第一碼字及該第二碼字的該複數個編碼位元的軟資訊,並且會設置該低密度奇偶校驗碼解碼電路以該第一碼字及該第二碼字的該複數個編碼位元的軟資訊、或者以該第一碼字及該第二碼字的該複數個編碼位元的硬資訊及軟資訊進行解碼運算。
[12] 如請求項11所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該第一碼字的該複數個編碼位元的硬資訊產生複數個檢查點信息及/或複數個變動點信息,以判斷該低密度奇偶校驗碼解碼電路是否解碼成功。
[13] 如請求項12所述的記憶體控制裝置,其中當該複數個變動點信息的總和大於一第一預設值、該複數個變動點信息的總和小於一第二預設值、及/或該複數個變動點信息的總和與前一段時間的一變動點信息總和之間的差距小於一第三預設值時,該低密度奇偶校驗碼解碼電路會判斷該第一碼字未能成功解碼。
[14] 如請求項12或13所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該檢查點信息與一奇偶校驗矩陣產生一檢測值,當該檢測值大於一第四預設值時,該低密度奇偶校驗碼解碼電路會判斷該第一碼字未能成功解碼。
[15] 如請求項11所述的記憶體控制裝置,其中該記憶體存取電路讀該第二碼字的時間與該低密度奇偶校驗碼解碼電路對該第一碼字進行解碼運算的時間至少部分重疊。
[16] 如請求項11所述的記憶體控制裝置,其中該低密度奇偶校驗碼解碼電路會依據該第二碼字的該複數個編碼位元的硬資訊進行解碼運算。
[17] 一種記憶體控制方法,包含有:讀取一第一碼字的硬資訊及一第二碼字的硬資訊;依據該第一碼字的硬資訊進行解碼運算;依據該第一碼字的硬資訊所產生的一檢測值,並將該檢測值與一解碼指標進行比對;以及依據該檢測值與該解碼指標判斷該第一碼字的硬資訊是否通過該解碼指標,若未通過則讀取該第一碼字的軟資料,並且以該第一碼字的軟資料進行解碼運算。
[18] 一種記憶體控制方法,包含有:自一個或多個記憶體讀取一第一碼字及一第二碼字,該第一碼字及該第二碼字分別包含有複數個編碼位元的硬資訊;依據該第一碼字的該複數個編碼位元的硬資訊進行低密度奇偶校驗碼的解碼運算;以及當該第一碼字未能成功解碼時,讀取該第一碼字及該第二碼字的該複數個編碼位元的軟資訊,並且以該第一碼字及該第二碼字的該複數個編碼位元的軟資訊、或者以該第一碼字及該第二碼字的該複數個編碼位元的硬資訊及軟資訊進行低密度奇偶校驗碼的解碼運算。
[19] 如請求項18所述的記憶體控制方法,其中當進行低密度奇偶校驗碼解碼運算時,會產生複數個檢查點信息及/或複數個變動點信息,當該複數個變動點信息的總和大於一第一預設值、該複數個變動點信息的總和小於一第二預設值、該複數個變動點信息的總和與前一段時間的一變動點信息總和之間的差距小於一第三預設值、及/或依據該複數個檢查點信息與一奇偶校驗矩陣所產生的一校驗值大於一第四預設值時,該低密度奇偶校驗碼解碼運算會被判斷為未能成功解碼。
[20] 如請求項18所述的記憶體控制方法,另包含依據該第二碼字的該複數個編碼位元的硬資訊進行低密度奇偶校驗碼的解碼運算。
类似技术:
公开号 | 公开日 | 专利标题
TWI460733B|2014-11-11|具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
US8769374B2|2014-07-01|Multi-write endurance and error control coding of non-volatile memories
KR101854954B1|2018-05-04|치환 소행렬의 합을 사용하는 체크섬
US20150229337A1|2015-08-13|Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
US7823043B2|2010-10-26|Corruption-resistant data porting with multiple error correction schemes
TWI411912B|2013-10-11|使用寫入驗證之代碼之錯誤底限減緩
US9213602B1|2015-12-15|Write mapping to mitigate hard errors via soft-decision decoding
US9761325B1|2017-09-12|Memory system
JP6367607B2|2018-08-01|低密度パリティチェック(ldpc)復号器での対数尤度比(llr)減衰
WO2019019550A1|2019-01-31|应用于快闪存储器中的自适应ldpc码纠错码系统和方法
US20150365106A1|2015-12-17|Deterministic read retry method for soft ldpc decoding in flash memories
US10608672B2|2020-03-31|Decoding concatenated codes by guessing noise
JP2019125910A|2019-07-25|メモリシステム
JP2013532422A|2013-08-15|Ldpcコードの復号のための方法、システム、およびプログラム
KR20200033688A|2020-03-30|에러 정정 회로 및 이의 동작 방법
US9304851B2|2016-04-05|Decoding with log likelihood ratios stored in a controller
WO2020124980A1|2020-06-25|应用于闪存控制器中的自适应polar码纠错码系统和方法
KR20160075001A|2016-06-29|플래시 메모리 시스템 동작 방법
US20160080004A1|2016-03-17|Memory controller and decoding method
US9160364B1|2015-10-13|Code word formatter of shortened non-binary linear error correction code
US11204831B2|2021-12-21|Memory system
US10673465B2|2020-06-02|Memory controller, memory system, and control method
JP2021048525A|2021-03-25|メモリシステム
US10628259B2|2020-04-21|Bit determining method, memory control circuit unit and memory storage device
WO2020263325A1|2020-12-30|Data driven icad graph generation
同族专利:
公开号 | 公开日
TWI460733B|2014-11-11|
US8832525B2|2014-09-09|
US20130124940A1|2013-05-16|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US7500167B2|2002-09-30|2009-03-03|Alcatel-Lucent Usa Inc.|BER calculation device for calculating the BER during the decoding of an input signal|
AU2003298253A1|2003-12-30|2005-07-21|Telefonaktiebolaget Lm Ericsson |Method and device for calculating the bit error rate of received signal|
US7805663B2|2006-09-28|2010-09-28|Sandisk Corporation|Methods of adapting operation of nonvolatile memory|
US20080092015A1|2006-09-28|2008-04-17|Yigal Brandman|Nonvolatile memory with adaptive operation|
US7818653B2|2006-09-28|2010-10-19|Sandisk Corporation|Methods of soft-input soft-output decoding for nonvolatile memory|
US8001441B2|2006-11-03|2011-08-16|Sandisk Technologies Inc.|Nonvolatile memory with modulated error correction coding|
EP2210345A2|2007-10-02|2010-07-28|Imec|An asip architecture for decoding at least two decoding methods|
TWI594256B|2010-04-19|2017-08-01|慧榮科技股份有限公司|用來進行記憶體存取管理之方法以及記憶裝置及其控制器|
TWI455132B|2010-06-23|2014-10-01|Phison Electronics Corp|資料讀取方法、控制電路與記憶體控制器|US9270296B1|2013-11-13|2016-02-23|Western Digital Technologies, Inc.|Method and system for soft decoding through single read|
CN104733051B|2013-12-19|2018-01-05|群联电子股份有限公司|奇偶校验码的解码方法、存储器储存装置及控制电路单元|
US9817716B2|2015-07-16|2017-11-14|Avago Technologies General IpPte. Ltd.|Systems and methods for retaining non-converged data sets for additional processing|
US10326479B2|2016-07-11|2019-06-18|Micron Technology, Inc.|Apparatuses and methods for layer-by-layer error correction|
KR20180009558A|2016-07-19|2018-01-29|삼성전자주식회사|저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러|
TWI625620B|2017-05-12|2018-06-01|威盛電子股份有限公司|非揮發性記憶體裝置及其讀取方法|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
TW100141716A|TWI460733B|2011-11-15|2011-11-15|具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法|TW100141716A| TWI460733B|2011-11-15|2011-11-15|具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法|
US13/676,822| US8832525B2|2011-11-15|2012-11-14|Memory controller with low density parity check code decoding capability and relevant memory controlling method|
[返回顶部]